#ifndef __BRANCH1_MODEL_SCENE0_H__
#define __BRANCH1_MODEL_SCENE0_H__
#include <daisy\Logic.h>
#include <daisy\FrameworkBaseConfig.h>
#include <daisy\OISInputManager.h.>	
#include <Terrain\OgreTerrain.h>
#include <Terrain\OgreTerrainGroup.h>
//#include "PageGeometry\PagedGeometry.h"
//#include "PageGeometry\GrassLoader.h"
//#include "Caelum.h"
//#include <OgreNewt_Debugger.h>
#include <SkyX.h>

class Scene0: public DAISY::Scene
{
public:
	Scene0(const std::string &name);
	virtual ~Scene0();
	void doEnable();
	void doDisable();
	void doFrame();
	void doExecute();
private:
	//boost::scoped_ptr<Forests::PagedGeometry> grass;
	//Forests::GrassLoader *grassLoader;
	//Ogre::Radian camPitch, camYaw;
	//Caelum::CaelumSystem* mCaelumSystem; 
	SkyX::SkyX* _Skyx;
	//bool _showGrass;
	Ogre::Terrain* mTerrain;
	Ogre::TerrainGlobalOptions* mTerrainGlobals;
	Ogre::TerrainGroup* mTerrainGroup;
	bool mTerrainsImported;
	void defineTerrain(long x, long y) ;
	void getTerrainImage(bool flipX, bool flipY, Ogre::Image& img);
	void initBlendMaps(Ogre::Terrain* terrain);	
private:
	DAISY::ActorPtr _dandelion;
};
class Branch1Scene0Factory: public DAISY::IFactory<DAISY::Scene>
	{
	public:

		virtual const std::string & getTypeName() const;

		virtual pointer_type createInstance(const std::string& instanceName = "BLANK", parameter_type parameter = NULL);
	};


#endif